package creatingPattern.builder;

/**
 * 建造者模式示例：客厅装饰
 * 设计意图：将一个复杂对象的构建与它的表示分离，使得同样的构建过程可以创建不同的表示
 * 使用场景：当需要创建复杂对象，且对象的构建过程与表示分离时使用
 */
public class ParlourDecorator {
    /**
     * 主方法：演示建造者模式
     * 设计意图：通过XML配置动态创建建造者和产品
     * 使用场景：当需要根据配置创建不同产品时，调用此方法
     * @param args 命令行参数
     */
    public static void main(String[] args) {
        try {
            Decorator d;
            d = (Decorator) ReadXML.getObject();
            ProjectManager m = new ProjectManager(d);
            Parlour p = m.decorate();
            p.show();
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }
}